9 сабақтың тақырыбы: Цикл операторлары

 

Сабақтың мақсаты: 1. Оқушылардың қауіпсіздік ережесімен таныстыру

                                      2. Оқушылардың ой - өрісін дамыту

                                      3. Оқушылардың сабаққа деген қызығушылығын

                                          арттыру

Сабақтың көрнекілігі: Компьютер

Сабақтың түрі: Жаңа сабақ

 

Сабақтың барысы:

Ұйымдастыру кезеңі: Оқушыларды түгендеу, сабақтың дайындығғын тексеру,   назарын сабаққа аудары

Үй тапсырмасын тексеру:

Үй тапсырмасынан сұрақтар қою арқылы қорытамын.

1. Техника қауіпсіздік ережесін сұрау.

2. Көзге жаттығу ережелерін сұрау.

 

 

Кез-келген күрделі есептерді шығару кезінде үш құрылымнан (реттік, тармақталу, цикл) тұратын программаны құруға болады. Оларды құрылымдық программалаудың базалық құрастырғыштары деп атайды. Цикл оператордың бірнеше рет орындалуын білдіреді.

 

for цикл операторы

C++ тілінде үш циклдік оператор бар: while (өрнек) оператор, do оператор while өрнек; for (инициализация; өрнек; модификация) оператор;

С++ тілінде 4 басқаруды беру операторы бар:

1. goto шартсыз өту операторы;

2. break циклдан шығу операторы;

3. continue циклдың келесі итерациясына көшу операторы;

4. return функциядан қайтару операторы.

goto шартсыз өту операторының форматы:  goto белгі;

break циклдан шығу операторы цикл операторларының ішінде қолданылады немесе switch операторынан шығуды қамтамасыз етедіcontinue циклдың келесі итерациясына көшу операторы цикл денесінің аяғына дейінгі операторларды бос жіберіп, басқаруды келесі итерацияға бередіreturn функциядан қайтару операторы функцияның орындалуын аяқтап, басқаруды шақыру нүктесіне береді.

Параметрлі цикл схемасы:

Арифметикалық прогрессия сияқты  For операторының жазылуы:

for(x=x0;x<=xk;x+=dx)

{

<1-оператор>;

<2-оператор>;

. . .

<n-ператор>;

}

мұндағы өрнек1: x=x0; – цикл айнымалысының бастапқы мəні, өрнек2: x<=xk; – циклдің қайталану шарты, өрнек3: x+=dx – цикл айнымалысының қадам мөлшеріне артуы. For цикл операторында өрн3 ретінде жалпы  дұрыс жазылған кез келген өрнекті пайдалануға болады. Мысалы:

for (d=0.1; d<50; d*=5)

printf(“%f”,d);

For цикл операторында бір немесе бірнеше өрнектерді жазбауға да болады, бірақ мұндайда символын міндетті түрде өз орындарына жазыпотыру керек, мысалы:

x=2;

for(n=4; x<=100;)

x=x*n;

For цикл операторында құрама өрнектер-ді « операциясы арқылы жазуға да болады,мұндайда бөлектенген өрнектер солдан оңға қарай есептеледі. Мысалы:

int x,y;

for (x=1,y=9;x<=10; x++,y--)

printf(“%d%d\n”, x,y);

Мұнда өрн1 орнына екі өрнек жазылған(x=1,y=9;) жəне олар x,y айнымалыларын өзгерту үшін қолданылады. Ал соңында өрн3 9 орнына да екі өрнек (x++,y--)жазылған.

 

Do while цикл операторы

Шарты соңынан тексерілетін do … while циклінің схемасы

Жалпы жазылу түрі:

do

{

1-оператор;

2-оператор;

… … …

n-оператор;

}

while (өрнек);

Do ... while циклінде шарт соңында тексерілетін болғандықтан,оның тұлғасы ең болмағанда бір рет орындалады. Цикл соңында жазылған while(өрнек) өрнек ақиқат болса (немесе 0-ге тең болмаса), цикл тұлғасы қайтадан орындалады. Ал өрнек жалған болса (немесе 0-ге тең болса), цикл аяқталады.

 

While цикл операторы

Шарты алдын ала тексерілетін цикл схемасы:

While ( шарт-өрнек)

{

1 оператор;

2 оператор;

......

N оператор;

}

Мұнда шарт-өрнекке кіретін айнымалы цикл ішінде өзгеріп отырады. Басқаруды беру операторларыgotobreak

goto шартсыз өту операторының форматы: goto <белгі>;

мұндағы белгі – оператор нөміріне ұқсас ерекше белгі, яғни  идентификатор. Бұл оператор бірінің ішіне бірі енгізілген бірнеше цикл жиынынан (мəлімет-тер арасында қателер кездессе) бірден сыртқа шығып кету керек болған кезде қолданылады. Мұндайда break операторын пайдалана алмаймызbreak циклдан шығу операторы цикл операторларының ішінде қолданылады немесе switch операторынан шығуды қамтамасыз етеді. Егер бұл оператор бірінің ішіне бірі енгізілген қабаттасқан цикл ішінде орналасса, онда ол ішкі циклдан оның сыртқы циклына шығуды ғана жүзеге асырадыcontinue циклдың келесі итерациясына көшу операторы цикл денесінің аяғына дейінгі операторларды бос жіберіп, басқаруды келесі итерацияға бередіreturn функциядан қайтару операторы функцияның орындалуын аяқтап, басқаруды шақыру нүктесіне береді.

Break операторы

Программа орындалуы кезінде цикл аяқталмай-ақ одан шығу үшін break операторы қолданылады. Егер бұл оператор бірі-нің ішіне бірі енгізілген қабаттасқан цикл ішінде орналасса, онда ол ішкі циклдан оның сыртқы циклына шығуды ғана жүзеге асырады.

Мысалы:

Екіөлшемді массивтен – A[5,5] бірөлшемді массив – B[5] құрастыру керек. Оны түрлендіру ережесі: егер осы жолда бір теріс элемент болса, онда B[i]=1, әйтпесе B[i]=0 болуы тиіс.

for (i=0;i { b[i]=0;

for (j=0;j if (a[i][j] { b[i]=1; break; }

}

Continue операторы

Программа орындалуы кезінде цикл аяқталмай-ақ одан шығып, қалған операторларды аттап өтіп, осы цикл параметрінің келесі мәніне көшу үшін continue операторы қолданылады, яғни циклдің келесі итерациясынақадамына басынан бастап ауысу жүзеге асырылады.

Мысалы:

Екіөлшемді массивA[5,5] берілген. Осы массивтегі теріс элементтердің санын анықтайтын және оларды квадраттайтын программа құру керек.

k=0;

for (i=0;i for (j=0;j if (a[i][j]>0

continue;

else

{ k=k+1;

a[i][j]=pow(a[i][j],2);

}

Goto операторы

Басқа тілдердегідей Си тілінде goto операторы көп қолданылмайды, бұл оператордың жазылуы:

goto ;

мұндағы белгіоператор нөміріне ұқсас ерекше белгі, яғни идентификатор.

Бұл оператор бірінің ішіне бірі енгізілген бірнеше цикл жиынынан (мәлімет¬тер арасында қателер кездессе) бірден сыртқа шығып кету керек болған кезде қолданылады. Мұндайда break операторын пайдалана алмаймыз.

Мысалы:

goto m5;

goto belgi2;

Варианттар:

1. 200-ге дейінгі 3-ке қалдықсыз бөлінетін бүтін сандардың қосындысын табу керек.

2. 100-ге дейінгі жұп оң сандардың қосындысын табу керек.

3. 200-ге дейінгі тақ оң сандардың қосындысын табу керек.

4. 20-дан үлкен және 100-ден кіші 3-ке қалдықсыз бөлінетін оң сандардың қосындысын табу керек.

Жалпы мүшесі көрсетілген өрнекке сәйкес қатар қосындысын e=10-4 дәлдігімен анықтау керек.

Си тілі элементтері.

Switch ауыстырғыш операторы

switch ауыстырғыш операторы программада кездесетін бірнеше (екіден артық) нұсқаның бірін таңдап алу керек болған жағдайда қолданылады.

Оператордың жалпы жазылуы:

switch ;

{

case белгі1: операторлар; break;

case белгі2: операторлар; break;

................

case белгіN: операторлар; break;

default: операторлар;

}

 

Оператордың орындалу схемасы:

Мұнда switch сөзінен кейінгі өрнек мәні есептеледі, ол бүтін санды (char типі де) типте болуы тиіс. Сол мән case сөздерінен кейін жазылған константалар мәндерімен салыстырылады. Егер олардың біріне тең болса, сол жол орындалады, жол соңында көшу операторы болмаса, келесі жолдар толық орындалады. Ал бір жолды орындап болған соңswitch операторынан шығу үшін break операторы қолданылады. Егер switch сөзінен кейінгі өрнек мәні ешбір константамен сәйкес келмесе, онда default сөзінен кейінгі операторлар атқарылады. Кейде default сөзі болмауы да мүмкін.

Егер default сөзі болмаса, онда switch операторынан кейінгі келесі жолдар орындала береді.

Switch операторындағы өрнек түрінде нақты типтегі мәліметтерді, сөз тіркестерін (жолдарды) пайдалануға болмайды.

Нөмірлеріне сәйкес апта күндерінің атауларын шығару мысалы:

1 енгізілсе, дүйсенбі сөзі,

2 енгізілсе, сейсенбі сөзі,

..........

7 енгізілсе, жексенбі сөзі шығарылады.

#include

#include

main()

int i;

printf("\n1-7 арасында бүтін сан енгіз: " );

scanf("%i",&i);

switch(i)

{

case 1: printf("\nдуйсенбі");break;

case 2: printf("\nсейсенбі");break;

case 3: printf("\nсарсенбі");break;

case 4: printf("\nбейсенбі");break;

case 5: printf("\nжұма");break;

case 6: printf("\nсенбі");break;

case 7: printf("\nжексенбі");break;

default: printf(“Сан 1-7 арасында болуы керек");

}

getch();

}

Көбейту кестесін шығару программасы:

int i;

printf("\n1-9 арасында бутін сан енгіз:" );

scanf("%i",&i);

switch(i)

{

case 1: printf("\n%dx1=%d",i,1*i);

case 2: printf("\n%dx2=%d",i,2*i);

case 3: printf("\n%dx3=%d",i,3*i);

case 4: printf("\n%dx4=%d",i,4*i);

case 5: printf("\n%dx5=%d",i,5*i);

case 6: printf("\n%dx6=%d",i,6*i);

case 7: printf("\n%dx7=%d",i,7*i);

case 8: printf("\n%dx8=%d",i,8*i);

case 9: printf("\n%dx9=%d",i,9*i);

default: printf(“Сан 1-9 арасында болуы тиіс");

}

Бұл программаның жұмыс нәтижесі:

1 енгізілгенде мыналар шығарылады:

1x1=1

1x2=2

1x3=3

1x9=9

2 енгізілгенде мыналар шығарылады:

2x2=4

2x3=6

2x9=18

9 енгізілгенде мыналар шығарылады:

9x9=81

Шығыс күнтізбесі бойынша жыл нөмірінің жануарлар атына сәйкестігін анықтау мысалы:

{ int god;

printf(Введите год: ");

scanf("%i",&god);

switch (god % 12)

{ case 0 : printf("год Обезьяны");break;

case 1 : printf("год Петуха"); break;

case 2 : printf("год Собаки"); break;

case 3 : printf("год Свиньи"); break;

case 4 : printf("год Крысы"); break;

case 5 : printf("год Коровы"); break;

case 6 : printf("год Тигра"); break;

case 7 : printf("год Зайца"); break;

case 8 : printf("год Дракона"); break;

case 9 : printf("год Змеи"); break;

case 10 : printf("год Лошади"); break;

case 11 : printf("год Овцы"); break;

defaultprintf("Введите целое без знака");

}